Conversation
closes [NY-1041](https://linear.app/ghost/issue/NY-1041/oss-issue-welcome-email-sender-still-appears-as-noreply-in-preview) and #26381 - In #26358 we made it so that member welcome emails, when sent, would use sender info and reply_to from the default newsletter - this PR updates the modal to display that information properly as well - Since this info is used in both the button that opens the modal and the modal itself, added a hook to de-duplicate some of the logic for determining exactly what to display - No logic yet for updating sender name, email, and reply to specifically for welcome emails, but this code is written in such a way that once that's supported it can easily take precedence over default newsletter values ### State 1 - defaults The default values for the newsletter (first screenshot) are what welcome emails use. <table> <tr> <th>Default Newsletter Settings</th> <th>Welcome Email Buttons</th> <th>Modal</th> </tr> <tr> <td align="center"><img src="https://github.com/user-attachments/assets/b41a23a5-0e0b-42a6-b482-9a872c452780" alt="Screenshot 2026-02-16 at 3 01 30 PM" width="380" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/20258e4e-1d4d-4d3d-880c-a91b311b8aa9" alt="Screenshot 2026-02-16 at 3 02 04 PM" width="380" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/63439fd1-7067-47d7-b000-7a22b7bc4f32" alt="Screenshot 2026-02-16 at 3 01 43 PM" width="620" /></td> </tr> </table> ### State 2 - custom name and sender email Updated sender name and sender email for the default newsletter. Sender name is updated in the button that opens the modal, and name + sender email are updated in the modal. The test email matches the same values. <table> <tr> <th>Newsletter Settings</th> <th>Welcome Email Buttons</th> </tr> <tr> <td align="center"><img src="https://github.com/user-attachments/assets/5a971b12-3ff0-4195-8a89-a69638b90b75" alt="Screenshot 2026-02-16 at 3 02 38 PM" width="420" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/c5dd8e08-3b53-4f21-8b2e-7955092f50cc" alt="Screenshot 2026-02-16 at 3 02 48 PM" width="420" /></td> </tr> <tr> <th>Modal</th> <th>Resulting Test Email</th> </tr> <tr> <td align="center"><img src="https://github.com/user-attachments/assets/5eebce17-b11c-40eb-88a7-7edf3a486d0d" alt="Screenshot 2026-02-16 at 3 02 54 PM" width="420" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/20a19864-3a21-4c53-82a0-c521ea7a070e" alt="Screenshot 2026-02-16 at 3 03 08 PM" width="420" /></td> </tr> </table> ### State 3 - custom reply to Same as above, but with a custom reply-to address. It appears in the modal and in the actual sent email. <table> <tr> <th>Newsletter Reply-To Setting</th> <th>Modal (w/ Reply-To)</th> <th>Resulting Test Email</th> </tr> <tr> <td align="center"><img src="https://github.com/user-attachments/assets/eab3dded-8e52-461c-8665-0565558cf471" alt="Screenshot 2026-02-16 at 3 03 24 PM" width="380" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/c5f1c741-4aac-4648-a82a-cf477c8a5a9e" alt="Screenshot 2026-02-16 at 3 03 33 PM" width="380" /></td> <td align="center"><img src="https://github.com/user-attachments/assets/1633a176-0625-4ebf-b591-1724be037c6a" alt="Screenshot 2026-02-16 at 3 03 42 PM" width="520" /></td> </tr> </table>
closes https://linear.app/ghost/issue/ONC-1484/re-account-page-links-are-broken ## Summary - Portal's `updateStateForPreviewLinks()` (the `hashchange` event handler) called `fetchLinkData()` without arguments, leaving `site` and `member` as `undefined` - This caused a crash when clicking portal hash links (e.g. `<a href="#/portal/account/profile">`) on an already-loaded page - Loading the full URL directly (e.g. `http://localhost:2368/#/portal/account/profile`) worked fine because the initial `fetchData()` code path passed the arguments correctly - Fixed by passing `this.state.site` and `this.state.member` to `fetchLinkData()` in `updateStateForPreviewLinks()` - Added tests for both logged-in and logged-out hashchange navigation
…ils (#26446) ref https://github.com/TryGhost/Ghost/actions/runs/22108351018/job/63898093273 This is a test only change, and doesn't impact any user-facing Ghost functionality. The E2E test suite sometimes fails in CI at the `docker compose up ...` step during environment setup. Currently it's practically impossible to debug this with the logs that are output. This change doesn't fix the problem, but adds more detailed logs that should hopefully make it easier to debug next time we see the same failure.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )